Say²lar² yaz²ya τeviren Excel makrosu

NO Problem k÷■emize gelen mektuplardan, Tⁿrkiye'deki Excel kullan²c²lar²n²n hemen hemen hepsinin say²lar² yaz²ya τeviren bir makrodan ho■lanaca≡² sonucu τ²k²yor. Biz de bo■ durmad²k tabii. Test merkezi sorumlusu Tolga arkada■²m²z sizler iτin say²lar² yaz²ya τeviren bir Excel fonksiyonu haz²rlad². A■a≡²da d÷kⁿmⁿ g÷rⁿlen makroyu Excel'e girdi≡inizde fonksiyonunuz haz²r olacak. Bir hⁿcredeki say²y² yaz²yla yazd²rmak iτin bⁿtⁿn yapaca≡²n²z

=YAZIYLA(hⁿcre ad²)

komutunu girmek olacakt²r. Makromuz katrilyona kadar olan say²lar² Tⁿrkτeye τevirip yaz² ile g÷rⁿntⁿlⁿyor. Modemi olanlar ve makroyu sat²r sat²r girmek istemeyenler, YAZIYLA.XLS dosyas²n² PC World BBS'in "Win 3.x genel" alan²ndan bilgisayarlar²na indirip kullanabilirler.

Makroyu Nas²l Kuracaks²n²z?

Bo■ bir Excel belgesi aτ²n. Ekle menⁿsⁿnden Makro * Modⁿl komutunu τal²■t²r²n. Ekrana bo■ bir modⁿl penceresi gelecektir. A■a≡²daki sat²rlar² bu pencereye aynen yaz²n. Excel belgesini kaydedin. Art²k bu Excel belgesinin τal²■ma sayfalar²nda =YAZIYLA() fonksiyonunu kullanabilirsiniz.

Makronun d÷kⁿmⁿ

Dim b$(9)
Dim y$(9)
Dim m$(4)
Dim v(15)
Dim c(3)

Function Yaziyla$(sayi)

b$(0) = ""
b$(1) = "Bir"
b$(2) = "▌ki"
b$(3) = "▄τ"
b$(4) = "D÷rt"
b$(5) = "Be■"
b$(6) = "Alt²"
b$(7) = "Yedi"
b$(8) = "Sekiz"
b$(9) = "Dokuz"

y$(0) = ""
y$(1) = "On"
y$(2) = "Yirmi"
y$(3) = "Otuz"
y$(4) = "K²rk"
y$(5) = "Elli"
y$(6) = "Altm²■"
y$(7) = "Yetmi■"
y$(8) = "Seksen"
y$(9) = "Doksan"

m$(0) = "Trilyon"
m$(1) = "Milyar"
m$(2) = "Milyon"
m$(3) = "Bin"
m$(4) = ""

a$ = Str(sayi)
If Left$(a$, 1) = " " Then pozitif = 1 Else pozitif = 0
a$ = Right$(a$, Len(a$) - 1)
For x = 1 To Len(a$)
  If (Asc(Mid$(a$, x, 1)) > Asc("9")) Or (Asc(Mid$(a$, x, 1)) < Asc("0")) Then GoTo hata
Next x
If Len(a$) > 15 Then GoTo hata
a$ = String(15 - Len(a$), "0") + a$
For x = 1 To 15
  v(x) = Val(Mid$(a$, x, 1))
Next x

s$ = ""
For x = 0 To 4
  c(1) = v((x * 3) + 1)
  c(2) = v((x * 3) + 2)
  c(3) = v((x * 3) + 3)
  If c(1) = 0 Then
    e$ = ""
  ElseIf c(1) = 1 Then
    e$ = "Yⁿz"
  Else
   e$ = b$(c(1)) + "Yⁿz"
  End If
  e$ = e$ + y$(c(2)) + b$(c(3))
  If e$ <> "" Then e$ = e$ + m$(x)
  If (x = 3) And (e$ = "BirBin") Then e$ = "Bin"
  s$ = s$ + e$
Next x

If s$ = "" Then s$ = "S²f²r"
If pozitif = 0 Then s$ = "Eksi" + s$
Yaziyla$ = s$
GoTo tamam
hata: Yaziyla$ = "Hata"
tamam:
End Function